 /// @file FusionConvert.h
 /// @brief FusionConvert 
 /// @copyright Copyright (c) 2025  Hefei Jiushao Intelligent Technology Co., Ltd. All rights reserved.
 /// @createtime 2025-04-09

#ifndef FUSIONCONVERT_H
#define FUSIONCONVERT_H
#include "common/constant.h"
#include <memory>

AMCAX_EXCHANGE_NAMESPACE_BEGIN

class ExchangeParameter;

#ifdef INTEROP_ENABLE

void ConvertUsingInterOp(const std::string &inFilePath, const std::string &outFilePath, 
    const std::shared_ptr<ExchangeParameter> &inputParameter = nullptr,
    ExchangeParameter* resultParameter = nullptr) ;
void ConvertUsingDataKit(const std::string &inFilePath, const std::string &outFilePath,
    const std::shared_ptr<ExchangeParameter> &inputParameter = nullptr,
    ExchangeParameter* resultParameter = nullptr);
void ConvertUsingAMCAX(const std::string &inFilePath, const std::string &outFilePath,
    const std::shared_ptr<ExchangeParameter> &inputParameter = nullptr,
    ExchangeParameter* resultParameter = nullptr);
void FusionConvert(const std::string &inFilePath, const std::string &outFilePath);

ExchangeParameter* GetMetaData(const std::string &inFilePath, const std::string &outFilePath, 
    const std::shared_ptr<ExchangeParameter> &inputParameter = nullptr);    
ExchangeParameter* GetMetaDataByInterOp(const std::string &inFilePath, const std::string &outFilePath, 
    const std::shared_ptr<ExchangeParameter> &inputParameter = nullptr);


void NewProcessToAMCAX(const std::string &inFilePath,const std::string &outFilePath) ;

#endif

AMCAX_EXCHANGE_NAMESPACE_END

#endif